8 CLR:RESTORE 10 U$="[197][197][197][197][197][197][197][197][197]":O$="[164][164][164][164][164][164][164][164][164]":A$="ADRESSIERUNG":B$="BEISPIEL: " 20 PRINT"[147][164][164]";O$;O$;O$;O$:PRINT"SYNTAX-LEHRGANG 'MASCHINENSPRACHE' (3)" 30 PRINT"[164][164][164][164][164]";O$;O$;O$:PRINT"1.2.3. DIE ";A$;"SMETHODEN[146]" 40 PRINT"DIE GENAUE KENNTNIS DER VERSCHIEDENEN" 50 PRINTA$;"SMETHODEN IST FUER DEN PRO-" 60 PRINT"GRAMMIERER VON GROESSTER BEDEUTUNG." 70 PRINT"SOWEIT MOEGLICH WERDEN WIR IN DEN BEI-" 80 PRINT"SPIELEN DEN BEFEHL 'LDA' VERWENDEN." 90 PRINT"'LDA' IST DIE ENGLISCHE ABKUERZUNG FUER" 100 PRINT"'LOAD ACCUMULATOR'.":PRINT" [163][160][160][163][160][163]" 120 I=1:GOSUB5000:IFFLTHEN20 200 PRINT"[147]DER BEFEHL 'LDA' BEWIRKT FOLGENDES: DIE" 210 PRINT"CPU LAED EIN DATENWORT (BYTE) IN DEN AC" 220 PRINT"ES GIBT VERSCHIEDENE MOEGLICHKEITEN," 230 PRINT"WIE DIE CPU DIES TUN SOLL, BZW. WOHER" 240 PRINT"SIE DAS BYTE HOLEN SOLL." 250 PRINT"IN DIESEM ABSCHNITT LERNEN WIR DIESE" 260 PRINT"UNTERSCHIEDE KENNEN." 270 PRINT"BEI DEN ";A$;"EN BEHALTEN WIR DIE" 280 PRINT"ENGLISCHEN BEZEICHNUNGEN BEI. DAS STU-" 290 PRINT"DIUM[160] WEITERFUEHRENDER LITERATUR WIRD" 300 PRINT"DADURCH ERLEICHTERT." 310 I=2:GOSUB5000:IFFLTHEN20 400 PRINT"[147][164][164]";O$;O$;O$:PRINT"1.2.3.1. IMPLIED-";A$;"[146]" 410 PRINT"'IMPLIED' SIND ALLE 1-BYTE-BEFEHLE. IH-" 420 PRINT"NEN FOLGT WEDER EIN DATENWORT NOCH EINE" 430 PRINT"ADRESSE. DAS ZU BEARBEITENDE DATENWORT" 440 PRINT"ERGIBT SICH AUS DEM BEFEHL." 450 PRINTB$;" DER BEFEHL, DEN IHNHALT DES":PRINTU$ 460 PRINT"ACCUMULATORS UM 1 ZU ERHOEHEN." 510 I=3:GOSUB5000:IFFLTHEN200 600 PRINT"[147][164][164][164][164]";O$;O$;O$:PRINT"1.2.3.2. IMMEDIATE-";A$;"[146]" 610 PRINT"'IMMEDIATE' SIND BEFEHLE, BEI DENEN DAS" 620 PRINT"ZU BEARBEITENDE BYTE DEM BEFEHL DIREKT" 630 PRINT"FOLGT. BEFEHLE MIT DIESER ";A$ 640 PRINT"SIND DAHER STETS 2-BYTE-BEFEHLE." 650 PRINT"WIR SCHREIBEN HINTER DEN BEFEHL DAS" 660 PRINT"ZEICHEN '#', GEFOLGT VON DEM DATENWORT." 690 PRINTB$;"DER BEFEHL, IN DEN AC DAS DA-":PRINTU$ 700 PRINT"TENWORT $00 ZU LADEN: 'LDA # $00'. DER" 710 PRINT"HEXADEZIMALE CODE FUER 'LDA #' IST $A9." 720 PRINT"IM PROGRAMMSPEICHER STEHT ALSO $A9 $00." 740 I=4:GOSUB5000:IFFLTHEN400 800 PRINT"[147][164][164][164]";O$;O$;O$:PRINT"1.2.3.3. ABSOLUTE-";A$;"[146]" 810 PRINT"'ABSOLUTE' SIND BEFEHLE, BEI DENEN DIE" 820 PRINT"ADRESSE DES ZU BEARBEITENDEN BYTES DEM" 830 PRINT"BEFEHLSBYTE FOLGT. DA ADRESSEN STETS 2" 840 PRINT"BYTE UMFASSEN, IST DIE BEFEHLSLAENGE 3":PRINT"BYTE. 850 [153]"DIE 2 ADRESSBYTES SIND DEM BEFEHLSBYTE" 860 [153]"NACHGESTELLT. ZUERST DAS HOEHERWERTIGE," 890 [153]"DANN DAS NIEDERWERTIGE BYTE." 910 I[178]5:[141]5000:[139]FL[167]600 1000 [153]"LOAD";B$;"DAS IM SPEICHER $0123 STEHEN-":[153]U$ 1010 [153]"DE BYTE SOLL IN DEN AC GELADEN WERDEN:" 1020 [153]"'LDA $0123'. DER HEXADEZIMALE CODE FUER" 1030 [153]"DEN BEFEHL 'LDA, ABSOLUTE' IST $AD. IM" 1040 [153]"PROGRAMMSPEICHER SIEHT DER BEFEHL DANN" 1050 [153]"SO AUS: '$AD $23 $01'. BEACHTEN SIE DIE" 1060 [153]"REIHENFOLGE DER ZWEI ADRESSBYTES !" 1110 I[178]6:[141]5000:[139]FL[167]800 1200 [153]"LOADTOTOTO";O$;O$;O$:[153]"1.2.3.4. ZEROPAGE-";A$;"WAIT" 1210 [153]"'ZEROPAGE' SIND BEFEHLE, BEI DENEN DEM" 1220 [153]"ZU BEARBEITENDEN BEFEHL EINE ZEROPAGE-":[153][163]30);U$ 1230 [153]"-ADRESSE FOLGT, D.H. DAS HOEHERWERTIGE":[153]U$ 1240 [153]"BYTE DER ADRESSE WIRD AUTOMATISCH ALS" 1250 [153]"$00 ANGENOMMEN. STATT LDA $00FB HEISST" 1260 [153]"ES ALSO 'LDA $FB'. DAMIT DIE CPU ZERO-" 1270 [153]"PAGE UND ABSOLUTE BEFEHLE UNTERSCHEIDEN" 1280 [153]"KANN, MUESSEN DIE BEFEHLSCODES NATUER-" 1290 [153]"LICH UNTERSCHIEDLICH SEIN." 1310 I[178]7:[141]5000:[139]FL[167]1000 1400 [153]"LOADDURCH DIESEN KUNSTGRIFF SIND ZEROPAGE-" 1410 [153]"BEFEHLE 2-BYTE-BEFEHLE, SPAREN ALSO GE-" 1420 [153]"GENUEBER DEN ABSOLUTE-BEFEHLEN EIN BYTE" 1430 [153]"UND SOMIT SPEICHERPLATZ. ZUDEM SIND SIE" 1440 [153]"SCHNELLER. NACHTEIL: AUF DER NULL-SEITE" 1450 [153]"LIEGEN DIE ADRESSEN $0000 - $00FF, DAS" 1460 [153]"SIND ALSO NUR 256 SPEICHER. MIT DIESEN" 1470 [153]"MUSS DER PROGRAMMIERER AUSKOMMEN." 1510 I[178]8:[141]5000:[139]FL[167]1200 1600 [153]"LOAD";O$:[153]"1.2.3.5. WAIT";O$;O$;O$ 1605 [153]"ABSOLUTE INDEXED WITH X-";A$;"WAIT" 1610 [153]"BEFEHLEN MIT DIESER ";A$;" FOLGT" 1620 [153]"EINE 2-BYTE-ADRESSE. DIE CPU ERHOEHT" 1630 [153]"DIESE ADRESSE UM DEN INHALT DES XR. DER" 1640 [153]"BEFEHL WIRD DANN AUSGEFUEHRT MIT DEM" 1650 [153]"BYTE, DAS SICH IN DER SPEICHERZELLE BE-" 1660 [153]"FINDET, DEREN ADRESSE SICH DURCH DIESE" 1670 [153]"ADDITION ERGAB. DER INHALT DES XRCLOSE HAT" 1680 [153]"ALSO DIE FUNKTION EINES INDEX. DAHER" 1690 [153]"DER NAME 'INDEX-REGISTER'." 1710 I[178]9:[141]5000:[139]FL[167]1400 1800 [153]"LOADWIR SCHREIBEN DEN BEFEHL FOLGENDERWEISE" 1810 [153]"'LDA $0123,X'." 1820 [153]B$;" DAS XR HABE DEN INHALT $A1.":[153]U$ 1830 [153]"DANN BEWIRKT DER BEFEHL 'LDA $FF00,X'," 1840 [153]"DASS DER INHALT DES SPEICHERS $FFA1 IN" 1850 [153]"DEN AC GELADEN WIRD. DURCH DEN BEFEHL" 1860 [153]"'LDA $03FF,X' WIRD DER INHALT DES SPEI-" 1870 [153]"CHERS $04A0 (= $03FF + $A1 !) IN DEN AC" 1880 [153]"GELADEN." 1910 I[178]10:[141]5000:[139]FL[167]1600 2000 [153]"LOADINDIZIERTE BEFEHLE SIND SEHR MAECHTIGE" 2010 [153]"BEFEHLE. BAUT MAN SIE IN SCHLEIFEN EIN," 2020 [153]"IN DENEN BEI JEDEM DURCHLAUF DAS INDEX-" 2030 [153]"REGISTER UM 1 ERHOEHT WIRD, SO KANN MAN" 2040 [153]"MIT SEHR EINFACHEN PROGRAMMSCHLEIFEN" 2050 [153]"WEITE SPEICHERBEREICHE BEARBEITEN (Z.B." 2060 [153]"NACH EINEM BESTIMMTEN BYTE DURCHSUCHEN)" 2110 I[178]11:[141]5000:[139]FL[167]1800 2200 [153]"LOAD";O$:[153]"1.2.3.6. WAIT";O$;O$;O$ 2205 [153]"ABSOLUTE INDEXED WITH Y-";A$;"WAIT" 2210 [153]"HIER WIRD ZUR INDIZIERUNG DAS YR HERAN-" 2220 [153]"GEZOGEN. ANSONSTEN GILT DAS BEI DER IN-" 2230 [153]"DIZIERUNG MIT DEM XR GESAGTE." 2310 I[178]12:[141]5000:[139]FL[167]2000 2400 [153]"LOAD";O$:[153]"1.2.3.7. WAIT";O$;O$;O$ 2405 [153]"ZEROPAGE INDEXED WITH X-";A$;"WAIT" 2410 [153]"ANSTELLE EINER ABSOLUTE-ADRESSE FOLGT" 2420 [153]"DEM BEFEHLSBYTE EINE ZEROPAGE-ADRESSE." 2430 [153]"DIESE WIRD UM DEN INHALT DES XR ERHOEHT" 2450 [153]O$:[153]"1.2.3.8. WAIT";O$;O$;O$ 2455 [153]"ZEROPAGE INDEXED WITH Y-";A$;"WAIT" 2460 [153]"HIER WIRD ZUR INDIZIERUNG DAS YR HERAN-" 2470 [153]"GEZOGEN. ANSONSTEN GILT DAS OBENGESAGTE" 2510 I[178]13:[141]5000:[139]FL[167]2200 2600 [153]"LOADAUFGABEN:":[153]U$ 2610 [153]"WAS VERSTEHT MAN UNTER" 2620 [153]"1. IMPLIED-";A$ 2630 [153]"2. IMMEDIATE-";A$ 2640 [153]"3. ABSOLUTE-";A$ 2650 [153]"4. ZEROPAGE-";A$ 2660 [153]"5. ABSOLUTE INDEXED-";A$;" ?" 2670 [153]"6. WELCHE LAENGEN HABEN BEFEHLE MIT DEN" 2680 [153]" BEI 1-5 AUFGEFUEHRTEN ";A$;"EN" 2690 [153]"7. WELCHE VORTEILE BIETET DIE ZEROPAGE-":[153]" ";A$;" ?" 2700 [153]"8. UND WELCHEN NACHTEIL HAT SIE ?" 2710 I[178]14:[141]5000:[139]FL[167]2400 2800 [153]"LOADWAS BEWIRKEN DIE BEFEHLE (DAS XR HABE":[153]"DEN INHALT $60):" 2820 [153]" 9. LDA # $20":[153]"10. LDA $20":[153]"11. LDA $0120" 2830 [153]"12. LDA $0120,X" 2840 [153]"13. LDA $20,X" 2910 I[178]15:[141]5000:[139]FL[167]2600 3000 [153]"LOADWAS BEWIRKEN DIE BEFEHLE (DAS XR HABE" 3005 [153]"NUN DEN INHALT $00):" 3020 [153]"14. LDA $20":[153]"15. LDA $0020":[153]"16. LDA $0020,X" 3030 [153]"17. LDA $20,X" 3040 [153]"18. LDA # $20" 3050 [153]" - SEITE 16 - <+> ONTOTOTOTOCMDCMDCMDCMDENDEWAIT <-> VON VORNE"; 3060 [141]5020:[145]FL[137]0:[153]"LOAD":[128]:[138] 5000 [143] UMBLAETTERN 5010 [153]" - SEITE";I;"- <+> WEITER <-> ZURUECK"; 5020 [129]I[178]0[164]11:[161]X$:[130] 5030 [161]X$:[139]X$[178]""[167]5030 5040 [139]X$[178]"+"[167]FL[178]0:[142] 5050 [139]X$[178]"-"[167]FL[178]1:[142] 5060 [137]5030 5100 [153][163]L)A$:[153][163]L)"(null)";B$;"(null)":[153][163]L)C$:[142]